# Nieuw in deze Makefile:
# - Automatische compilatieregel (zie .SUFFIXES)

#### MODE ###########################################################

# Select the mode: DEBUG or OPTIMIZE
MODE=DEBUG

#### COMPILER #######################################################

FC=gfortran

# Basisvlaggen
FFLAGS_gfortran = -pedantic -Wall -Wunderflow

# Debugvlaggen (tijdens testfase)
FFLAGS_DEBUG_gfortran = -g -fbounds-check

# Optimalisatievlaggen (ZELF IN TE VULLEN)
FFLAGS_OPTIMIZE_gfortran =

# Stel de selectie van de juiste vlaggen samen op basis van MODE en FC
FFLAGS = $(FFLAGS_$(MODE)_$(FC)) $(FFLAGS_$(FC))

#### BLAS ###########################################################
# (ZELF IN TE VULLEN)
BLAS_FLAGS=-L/usr/local/lib -lblas

#### AUTOMATISCHE COMPILATIE *.f95 -> *.o ###########################

.SUFFIXES:
.SUFFIXES: .f95 $(SUFFIXES)

# Lees als: "Een object-bestand kan je genereren uit een
#            Fortran-bestand d.m.v. het volgende commando."
.f95.o:
	$(FC) -c $(FFLAGS) $<

#### TARGETS ########################################################

multest: matrixop.o multest.o
	$(FC) -o $@ $^ $(BLAS_FLAGS)

run: multest
	./multest
	./printall

clean:
	rm -f *.o *.mod

veryclean: clean
	rm -f dmr
